package cn.edu.zjgsu.ito.util;

import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
  
public class TransferFile {  
	//转移文件并删除原来的文件
    public  void transferFile(String oldPath,String newPath) throws Exception {  
              
            int byteread = 0;  
            File oldFile = new File(oldPath);  
            FileInputStream fin = null;  
            FileOutputStream fout = null;  
            try{  
                if(oldFile.exists()){  
                    fin = new FileInputStream(oldFile);  
                    fout = new FileOutputStream(newPath);  
                    byte[] buffer = new byte[fin.available()];  
                    while( (byteread = fin.read(buffer)) != -1){  
                        fout.write(buffer,0,byteread);  
                    }  
                    fout.close();
                    if(fin != null){  
                        fin.close();  
                        delFile(oldFile);  
                    }  
                }else{  
                    throw new Exception("需要转移的文件不存在!");  
                }  
            }catch(Exception e){  
                e.printStackTrace();  
                throw e;  
            }finally{  
                if(fin != null){  
                    fin.close();  
                }  
            }  
        } 
    public static void delFile(File file) throws Exception {  
        if(!file.exists()) {  
            throw new Exception("文件"+file.getName()+"不存在,请确认!");  
        }  
        if(file.isFile()){  
            if(file.canWrite()){  
                file.delete();  
            }else{  
                throw new Exception("文件"+file.getName()+"只读,无法删除,请手动删除!");  
            }  
        }else{  
            throw new Exception("文件"+file.getName()+"不是一个标准的文件,有可能为目录,请确认!");  
        }  
    } 
    
    //复制文件
    public  void CopyFile(String oldPath,String newPath) throws Exception {  
        
        int byteread = 0;  
        File oldFile = new File(oldPath);  
        FileInputStream fin = null;  
        FileOutputStream fout = null;  
        try{  
            if(oldFile.exists()){  
                fin = new FileInputStream(oldFile);  
                fout = new FileOutputStream(newPath);  
                byte[] buffer = new byte[fin.available()];  
                while( (byteread = fin.read(buffer)) != -1){  
                    fout.write(buffer,0,byteread);  
                }  
                fout.close();
                if(fin != null){  
                    fin.close();  
                    
                }  
            }else{  
                throw new Exception("需要转移的文件不存在!");  
            }  
        }catch(Exception e){  
            e.printStackTrace();  
            throw e;  
        }finally{  
            if(fin != null){  
                fin.close();  
            }  
        }  
    } 
      
}  
